'Guts.bas SmallBASIC 0.12.0 2015-11-17 MGA/B+ 'modified > GUTS REM Original ARM BBC BASIC version by Jan Vibe '800x600 DIM bX(15),bY(15),bZ(15),COLR(15) bX(1) = -100 : A = 0 FOR N = 1 TO 15 COLR(16-N)=rgb(7*N+150,14*N+45,14*N+45) NEXT X1 = RND*XMAX : Y1 = RND*YMAX : DX1 = (RND*16+1)*(RND-.5) : DY1 = (RND*16+1)*(RND-.5) X2 = RND*XMAX : Y2 = RND*YMAX : DX2 = (RND*16+1)*(RND-.5) : DY2 = (RND*16+1)*(RND-.5) while 1 H = X1+DX1 : IF H< 0 OR H> xmax THEN DX1 = (RND*16+1)*-SGN(DX1) H = Y1+DY1 : IF H< 0 OR H> ymax THEN DY1 = (RND*16+1)*-SGN(DY1) X1 += DX1 : Y1 += DY1 IF X2< X1 AND DX2< 24 THEN DX2 += 1 IF X2> X1 AND DX2> -24 THEN DX2 -= 1 IF Y2< Y1 AND DY2< 24 THEN DY2 += 1 IF Y2> Y1 AND DY2> -24 THEN DY2 -= 1 X2 += DX2 : Y2 += DY2 : A = (A+10) MOD 360 : Z = (SIN(RAD(A))+1)+2 FOR N = 2 TO 15 bX(N-1) = bX(N) : bY(N-1) = bY(N) : bZ(N-1) = bZ(N) NEXT bX(15) = X2 : bY(15) = Y2 : bZ(15) = Z FOR N = 1 TO 15 : CIRCLE bX(N),bY(N),N*bZ(N),1,COLR(N) FILLED : NEXT showpage delay 10 wend